package com.wicket.okrapp.base.service.dto.common;



import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * @desc StandardDataDto
 * @使用场景
 */
@Data
public class StandardDataDto extends BaseDto implements Serializable {

    /**
     * 数据结果ID:
     */
    @ApiModelProperty("数据结果ID ")
    private String dataResultId;

    /**
     * 归属内容表主键ID:
     */
    @ApiModelProperty("归属内容表主键ID")
    private String entityId;

    /**
     * 冗余单位:
     */
    @ApiModelProperty("冗余单位")
    private String unit;

    /**
     * 数据值结果:
     */
    @ApiModelProperty("数据值结果")
    private Double dataResult;

    /**
     * 数据类型编码:
     */
    @ApiModelProperty("数据类型编码")
    private String dataType;

    /**
     * 上一数据结果ID:
     */
    @ApiModelProperty("上一数据结果ID")
    private String parentDataResultId;

    /**
     * 上一数据值结果:
     */
    @ApiModelProperty("上一数据值结果")
    private Double parentDataResult;

    /**
     * 主体生命周期:
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 创建人就职记录ID:
     */
    @ApiModelProperty("创建人就职记录ID")
    private String createInductionId;

    /**
     * 创建时间:
     */
    @ApiModelProperty("创建时间")
    private Date createTime;
/**
     * 来自内容表主键ID 
     */
    @ApiModelProperty("来自内容表主键ID")
    private String	 fromContentEntityId;

    /**
     * 进度值 
     */
    @ApiModelProperty("进度值")
    private Double	 progressValue;

    /**
     * 进度值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("进度值单位")
    private String	 progressValueUnit;

    /**
     * 进度较上次变化值 
     */
    @ApiModelProperty("进度较上次变化值")
    private Double	 fromLastProgressValue;

    /**
     * 进度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("进度较上次变化值单位")
    private String	 fromLastProgressValueUnit;

    /**
     * 进度较上次增降幅 
     */
    @ApiModelProperty("进度较上次增降幅")
    private Double	 progressFromLastRatio;

    /**
     * 进度较上次增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("进度较上次增降幅单位")
    private String	 progressFromLastRatioUnit;

    /**
     * 实际值 
     */
    @ApiModelProperty("实际值")
    private Double	 actualValue;

    /**
     * 实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("实际值单位")
    private String	 actualValueUnit;

    /**
     * 较上次目标变化值 
     */
    @ApiModelProperty("较上次目标变化值")
    private Double	 changeFromLastTarget;

    /**
     * 较上次目标变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("较上次目标变化值单位")
    private String	 changeFromLastTargetUnit;

    /**
     * 较上次目标增降幅 
     */
    @ApiModelProperty("较上次目标增降幅")
    private Double	 fromLastTargetLiftRatio;

    /**
     * 较上次目标增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("较上次目标增降幅单位")
    private String	 fromLastTargetLiftRatioUnit;

    /**
     * 达成度（数值） 
     */
    @ApiModelProperty("达成度（数值）")
    private Double	 reach;

    /**
     * 达成度单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("达成度单位")
    private String	 reachUnit;

    /**
     * 达成度较上次变化值 
     */
    @ApiModelProperty("达成度较上次变化值")
    private Double	 fromLastReach;

    /**
     * 达成度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("达成度较上次变化值单位")
    private String	 fromLastReachUnit;

    /**
     * 达成度较上次增降福 
     */
    @ApiModelProperty("达成度较上次增降福")
    private Double	 actualFromLastTimeRatio;

    /**
     * 达成度较上次增降福单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("达成度较上次增降福单位")
    private String	 actualFromLastTimeRatioUnit;

    /**
     * 汇报得分（数值） 
     */
    @ApiModelProperty("汇报得分（数值）")
    private Double	 reportScoreValue;

    /**
     * 汇报得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("汇报得分单位")
    private String	 reportScoreUnit;

    /**
     * 实际得分（数值） 
     */
    @ApiModelProperty("实际得分（数值）")
    private Double	 actualScoreValue;

    /**
     * 实际得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("实际得分单位")
    private String	 actualScoreUnit;
/**
     * 汇报得分（文本）
     */
    @ApiModelProperty("汇报得分（文本）")
    private String	 reportScore;

    /**
     * 实际得分（文本）
     */
    @ApiModelProperty("实际得分（文本）")
    private String	 actualScore;
/**
     * 实时得分
     */
    @ApiModelProperty("实时得分")
    private String	 realTimeScore;
/**
     * 工作周期更新切片
     */
    @ApiModelProperty("工作周期更新切片")
    private String	 workCycleUpdateSlice;
/**
     * 权重
     */
    @ApiModelProperty("权重")
    private Double	 weightValue;

    /**
     * 权重分值
     */
    @ApiModelProperty("权重分值")
    private Double	 weightScore;

    @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      StandardDataDto that = (StandardDataDto) o;
      return  dataResultId == that.dataResultId&&entityId == that.entityId&&unit == that.unit&&dataResult == that.dataResult&&dataType == that.dataType&&parentDataResultId == that.parentDataResultId&&parentDataResult == that.parentDataResult&&subjectLifeCycle == that.subjectLifeCycle&&createInductionId == that.createInductionId&&createTime == that.createTime&&fromContentEntityId == that.fromContentEntityId&&progressValue == that.progressValue&&progressValueUnit == that.progressValueUnit&&fromLastProgressValue == that.fromLastProgressValue&&fromLastProgressValueUnit == that.fromLastProgressValueUnit&&progressFromLastRatio == that.progressFromLastRatio&&progressFromLastRatioUnit == that.progressFromLastRatioUnit&&actualValue == that.actualValue&&actualValueUnit == that.actualValueUnit&&changeFromLastTarget == that.changeFromLastTarget&&changeFromLastTargetUnit == that.changeFromLastTargetUnit&&fromLastTargetLiftRatio == that.fromLastTargetLiftRatio&&fromLastTargetLiftRatioUnit == that.fromLastTargetLiftRatioUnit&&reach == that.reach&&reachUnit == that.reachUnit&&fromLastReach == that.fromLastReach&&fromLastReachUnit == that.fromLastReachUnit&&actualFromLastTimeRatio == that.actualFromLastTimeRatio&&actualFromLastTimeRatioUnit == that.actualFromLastTimeRatioUnit&&reportScoreValue == that.reportScoreValue&&reportScoreUnit == that.reportScoreUnit&&actualScoreValue == that.actualScoreValue&&actualScoreUnit == that.actualScoreUnit&&reportScore == that.reportScore&&actualScore == that.actualScore&&realTimeScore == that.realTimeScore&&workCycleUpdateSlice == that.workCycleUpdateSlice&&weightValue == that.weightValue&&weightScore == that.weightScore;
    }

    @Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), dataResultId,entityId,unit,dataResult,dataType,parentDataResultId,parentDataResult,subjectLifeCycle,createInductionId,createTime,fromContentEntityId,progressValue,progressValueUnit,fromLastProgressValue,fromLastProgressValueUnit,progressFromLastRatio,progressFromLastRatioUnit,actualValue,actualValueUnit,changeFromLastTarget,changeFromLastTargetUnit,fromLastTargetLiftRatio,fromLastTargetLiftRatioUnit,reach,reachUnit,fromLastReach,fromLastReachUnit,actualFromLastTimeRatio,actualFromLastTimeRatioUnit,reportScoreValue,reportScoreUnit,actualScoreValue,actualScoreUnit,reportScore,actualScore,realTimeScore,workCycleUpdateSlice,weightValue,weightScore);
    }

}
